# 实现一个简化版本的 人生重开模拟器~

"""
    1.游戏开始的时候，设定初始属性 ：颜值，体质，智力，家境
    2.开始游戏，随机生成性别和出生点
    3.针对每一年，都生成人生经历，(依靠一定的随机因素+当前角色的属性)
"""
import random
import sys
import time

print('+--------------------------------------+')
print('|                                      |')
print('|        花有重开日，人无再少年            |')
print('|                                      |')
print('|        欢迎来到人生重开模拟器            |')
print('|                                      |')
print('+--------------------------------------+')


# 设置初始属性
# 颜值，体质，智力，家境，总和不能超过20，每一项在1~10之间


# 使用循环，使玩家在输入错误的时候可以重新输入
while True:
    print('请设置初识属性（可用点数总数为20）')
    face = int(input("请输入颜值(1-10):"))
    strong = int(input("请输入体质(1-10):"))
    iq = int(input("请输入智力(1-10):"))
    home = int(input("请输入家境(1-10):"))

    # 通过条件语句对用户输入的属性值进行检查
    if face < 1 or face > 10:
        print("颜值设置有误")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误")
        continue
    if iq < 1 or iq > 10:
        print("智商设置有误")
        continue
    if home < 1 or home > 10:
        print("家境设置有误")
        continue

    if face + strong + iq + home > 20:
        print("总属性和超出了20，也是设置有误！")
        continue

    # 如果上面当前的条件都没有触发，则输入合法，此时跳出循环结束输入
    print("初始属性输入完毕！")
    print(f"颜值：{face}，体质：{strong},智力：{iq},家境：{home}")
    break


# 生成角色的性别
# 使用 random.randint(begin,end),就能生成[begin,end]随机整数
# 此处的random是python中的一个模块，模块就是别人写好的代码，直接给我们来用
# 使用别人模块的优点：1.降低编程的门槛 2. 更快速的完成需要实现的功能
# 在python中如果想使用其他模块，需要使用 import语句，把模块的名字导入进来
# pycharm有个功能，能够自动导入当前使用的模块

point = random.randint(1, 6)
if point % 2 == 1:
    gender = 'boy'
    print("你是男孩")
else:
    gender = 'girl'
    print("你是女孩")


# 设定角色的出生点

# 为了简单，就直接生成一个1-3的随机数
point = random.randint(1, 3)
if home == 10:
    # 第一档
    print("你出生在帝都，你的父母是高管政要")
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    # 第二档
    if point ==1:
        print("你出生在大城市，父母是公务员")
        face += 2
    elif point ==2:
        print("你出生在大城市，父母是企业高管")
        home += 2
    else:
        print("你出生在大城市，父母是大学教授")
        iq += 2
elif 4 <= home <= 6:
    # 第三档
    if point == 1:
        print("你出生在三线城市，你的父母是医生")
        strong += 1
    elif point == 2:
        print("你出生在镇上，你的父母是老师")
        iq += 1
    else:
        print("你出生在镇上，你的父母是个体户")
        home += 1
else:
    # 第四档
    if point == 1:
        print("你出生在农村，父母是辛苦劳作的农民")
        strong += 1
        face -= 2
    elif point == 2:
        print("你出生在穷乡僻壤，你的父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上，你的父母感情不和")
        strong -= 1
print(f"颜值：{face}，体质：{strong},智力：{iq},家境：{home}")


# 幼年阶段

for age in range(1, 11):
    info = f'你今年{age}岁。'
    point = random.randint(1, 3)

    if gender == 'girl' and home <=3 and point == 1:
        info += '你的家里人重男轻女思想非常严重，你被遗弃了!'
        print(info)
        print('游戏结束！')
        sys.exit(0)  #sys是system单词的缩写，也是python内部提供的一个模块

    elif strong < 6 and point < 3:
        info += '你生了一场病'
        if home >= 5:
            info += '你在父母的悉心照料下，你康复了'
            strong += 1
            home -= 1
        else:
            info += '你的父母没精力管你，你的身体状况更糟糕了'
            strong -= 1

    elif face <= 4 and age >= 7:
        info +='你长得太丑了，别的小朋友不喜欢你'
        if iq > 5:
            info +='你决定用学习填充自己'
            iq += 1
        else:
            if gender =='boy':
                info +='你和别的小朋友经常打架'
                strong += 1
                iq -= 1
            else:
                info +='你经常呗别的小朋友欺负'
                strong -= 1

    elif iq < 5:
        info +='你看起来傻傻的'
        if home >= 8 and age >= 6:
            info +='你的父母把你送到更好的学校学习'
            iq += 1
        elif home <= 4 <= 7:
            if gender =='boy':
                info +='你的父母鼓励你多运动，争取成为运动员'
                strong += 1
            else:
                info +='你的父母鼓励你多打扮自己'
                face += 1
        else:
            info +='你的父母为此经常吵架'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    else:
        info +='你健康成长。'
        if point == 1 :
            info +='你看起来更结实了。'
            strong += 1
        elif point == 2:
            info +='你看起来更好看了'
            face += 1
        else:
            pass

    print(info)
    print(f"颜值：{face}，体质：{strong},智力：{iq},家境：{home}")
    print('-------------------------------------------------')
    time.sleep(1)
    # time也是python提供的模块，sleep的功能就是让程序暂停一会，在继续执行